The present invention relates generally to file system operations, and more specifically, to hashing file attributes to facilitate efficient performance of file system operations.
Most file systems provide a directory or folder structure to organize the files. In a directory structure, finding a file involves looking at the root directory and then traversing sub-directories until the desired file is located. In a like manner, computer utilities that operate on files, such as a find utility, a tar utility, and a rsync utility, begin processing at the root directory and operate on the files in a certain predefined order such as a top-down order, a bottom-up order, a breadth-first order or a depth-first order. The order creates dependencies between the operations. For example, a recursive copy creates the parent directories before copying the files into the parent's child directories. Likewise, to delete a parent directory, all of the child directories of the parent directory should be deleted before the parent directory is deleted. The operations, therefore, should be scheduled in an order that resolves the dependencies.